package com.yqyd.nbot.domain;

import java.util.Date;
import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yqyd.common.annotation.Excel;
import com.yqyd.common.core.domain.BaseEntity;

/**
 * 九号-活动信息对象 nbot_activity
 * 
 * @author Dhq
 * @date 2025-08-20
 */
@Data
@Accessors(chain = true)
public class NbotActivity
{
    private static final long serialVersionUID = 1L;

    /** 活动ID */
    private Long id;

    /** 活动标题 */
    private String title;

    /** 活动类型ID */
    private Long typeId;

    /** 创建用户ID */
    private Long createId;

    /** 开始时间 */
    private String startAt;

    /** 结束时间 */
    private String endAt;

    /** 总里程 */
    private Integer distance;

    /** 难度等级 (1新手，2进阶，3资深，4专家) */
    private Integer difficulty;

    /** 活动地址 */
    private String address;

    /** 活动经度 */
    private String longitude;

    /** 活动纬度 */
    private String latitude;

    /** 活动最大参与人数 */
    private Integer maxJoin;

    /** 活动描述 */
    private String description;

    /** 活动封面图 */
    private String image;

    /** 状态：1待审核，2已发布，3进行中，4已结束，5已取消 */
    private Integer status;

    /** 审核状态：1待审核，2通过，3拒绝 */
    private Integer auditStatus;

    /** 活动创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createAt;

    /** 活动更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateAt;

    /** 活动费用(元) */
    private Integer fee;

    /** 参与人数 */
    private Integer joinNum;

    // 活动创建用户对象
    private NbotCreateUser createUser;

    // 活动类型对象
    private NbotActType actType;

    // 将状态转成中文
    public String getStatusName() {
        if(Objects.isNull(this.status)){
            return "未知状态";
        }
        if (this.status == 1) {
            return "待审核";
        } else if (this.status == 2) {
            return "即将开始";
        } else if (this.status == 3) {
            return "进行中";
        } else if (this.status == 4) {
            return "已结束";
        } else if (this.status == 5) {
            return "已取消";
        } else {
            return "未知状态";
        }
    }


    // 将难度等级转成中文
    public String getDifficultyName() {
        if(Objects.isNull(this.difficulty)){
            return "未知";
        }
        if (this.difficulty == 1) {
            return "新手";
        } else if (this.difficulty == 2) {
            return "进阶";
        } else if (this.difficulty == 3) {
            return "资深";
        } else if (this.difficulty == 4) {
            return "专家";
        } else {
            return "未知";
        }
    }
}
